/**
 * Copyright &copy; 2012-2016 <a href="https://github.com/thinkgem/jeesite">JeeSite</a> All rights reserved.
 */
package com.thinkgem.jeesite.modules.hk.shop.entity.product;

import com.google.common.collect.Lists;
import com.thinkgem.jeesite.modules.hk.shop.entity.brand.HkShopBrand;
import com.thinkgem.jeesite.modules.hk.shop.entity.category.HkShopCategory;
import com.thinkgem.jeesite.modules.hk.shop.entity.category.HkShopCategoryColor;
import com.thinkgem.jeesite.modules.hk.shop.entity.category.HkShopCategoryProperty;
import com.thinkgem.jeesite.modules.hk.shop.entity.category.HkShopCategorySpec;
import com.thinkgem.jeesite.modules.hk.shop.entity.property.HkShopPropertyValue;
import com.thinkgem.jeesite.modules.hk.shop.entity.shop.HkUserShop;
import com.thinkgem.jeesite.modules.sys.entity.User;
import org.hibernate.validator.constraints.Length;

import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;

import com.thinkgem.jeesite.common.persistence.DataEntity;

/**
 * 乐购商品Entity
 *
 * @author 罗天文
 * @version 2018-05-16
 */
public class HkShopProduct extends DataEntity<HkShopProduct> {

    private static final long serialVersionUID = 1L;
    private HkShopBrand brand;        // 品牌
    private String categoryPid;        // 父分类
    private HkShopCategory category;        // 分类
    private String title;        // 名称
    private String subtitle;        // 副标题
    private String listing;        // 包装清单
    private String parameter;        // 商品参数
    private String state;        // 状态
    private String afterService;        // 售后服务
    private String imgSrc;        // 商品主图
    private String integral;        // 乐币
    private String descript;        // 描述
    private Date upshelfTime;        // 上架时间
    private Date downshelfTime;        // 下架时间
    private String isnew;        // 是否新品
    private String keywords;        // 关键字
    private String specs; //规格
    private String colors;//颜色
    private String artno;//货号
    private HkUserShop shop; //店铺
    private User user;  //用户

    public String getArtno() {
        return artno;
    }

    public void setArtno(String artno) {
        this.artno = artno;
    }

    public String getSpecs() {
        return specs;
    }

    public void setSpecs(String specs) {
        this.specs = specs;
    }

    public String getColors() {
        return colors;
    }

    public void setColors(String colors) {
        this.colors = colors;
    }

    private List<HkShopProductProperty> hkShopProductPropertyList = Lists.newArrayList();        // 商品属性子表列表
    private List<HkShopCategoryProperty> hkShopCategoryPropertyList = Lists.newArrayList();        // 分类属性子表列表
    private List<HkShopProductImages> hkShopProductImagesList = Lists.newArrayList();        // 产品图片子表列表
    private List<HkShopProductSku> hkShopProductSkuList = Lists.newArrayList();        // sku子表列表


    private List<HkShopProductSpec> specsList = Lists.newArrayList();        // 商品规格子表列表

    private List<HkShopProductColor> colorsList = Lists.newArrayList();        // 颜色子表列表

    private List<HkShopCategorySpec> categoryspecsList = Lists.newArrayList();        // 分类规格子表列表

    private List<HkShopCategoryColor> categorycolorsList = Lists.newArrayList();        // 分类颜色子表列表

    public List<HkShopProductProperty> getHkShopProductPropertyList() {
        return hkShopProductPropertyList;
    }

    public void setHkShopProductPropertyList(List<HkShopProductProperty> hkShopProductPropertyList) {
        this.hkShopProductPropertyList = hkShopProductPropertyList;
    }

    public List<HkShopCategorySpec> getCategoryspecsList() {
        return categoryspecsList;
    }

    public void setCategoryspecsList(List<HkShopCategorySpec> categoryspecsList) {
        this.categoryspecsList = categoryspecsList;
    }

    public List<HkShopCategoryColor> getCategorycolorsList() {
        return categorycolorsList;
    }

    public void setCategorycolorsList(List<HkShopCategoryColor> categorycolorsList) {
        this.categorycolorsList = categorycolorsList;
    }

    public List<HkShopProductSpec> getSpecsList() {
        return specsList;
    }

    public void setSpecsList(List<HkShopProductSpec> specsList) {
        this.specsList = specsList;
    }

    public List<HkShopProductColor> getColorsList() {
        return colorsList;
    }

    public void setColorsList(List<HkShopProductColor> colorsList) {
        this.colorsList = colorsList;
    }

    public List<HkShopProductSku> getHkShopProductSkuList() {
        return hkShopProductSkuList;
    }

    public void setHkShopProductSkuList(List<HkShopProductSku> hkShopProductSkuList) {
        this.hkShopProductSkuList = hkShopProductSkuList;
    }

    public List<HkShopCategoryProperty> getHkShopCategoryPropertyList() {
        return hkShopCategoryPropertyList;
    }

    public void setHkShopCategoryPropertyList(List<HkShopCategoryProperty> hkShopCategoryPropertyList) {
        this.hkShopCategoryPropertyList = hkShopCategoryPropertyList;
    }

    public List<HkShopProductImages> getHkShopProductImagesList() {
        return hkShopProductImagesList;
    }

    public void setHkShopProductImagesList(List<HkShopProductImages> hkShopProductImagesList) {
        this.hkShopProductImagesList = hkShopProductImagesList;
    }


    public HkShopProduct() {
        super();
    }

    public HkShopProduct(String id) {
        super(id);
    }

    public HkShopBrand getBrand() {
        return brand;
    }

    public void setBrand(HkShopBrand brand) {
        this.brand = brand;
    }

    @Length(min = 0, max = 32, message = "父分类长度必须介于 0 和 32 之间")
    public String getCategoryPid() {
        return categoryPid;
    }

    public void setCategoryPid(String categoryPid) {
        this.categoryPid = categoryPid;
    }

    public HkShopCategory getCategory() {
        return category;
    }

    public void setCategory(HkShopCategory category) {
        this.category = category;
    }

    @Length(min = 0, max = 200, message = "名称长度必须介于 0 和 200 之间")
    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    @Length(min = 0, max = 200, message = "副标题长度必须介于 0 和 200 之间")
    public String getSubtitle() {
        return subtitle;
    }

    public void setSubtitle(String subtitle) {
        this.subtitle = subtitle;
    }

    @Length(min = 0, max = 1000, message = "包装清单长度必须介于 0 和 1000 之间")
    public String getListing() {
        return listing;
    }

    public void setListing(String listing) {
        this.listing = listing;
    }

    @Length(min = 0, max = 1000, message = "商品参数长度必须介于 0 和 1000 之间")
    public String getParameter() {
        return parameter;
    }

    public void setParameter(String parameter) {
        this.parameter = parameter;
    }

    @Length(min = 0, max = 1, message = "状态长度必须介于 0 和 1 之间")
    public String getState() {
        return state;
    }

    public void setState(String state) {
        this.state = state;
    }

    @Length(min = 0, max = 2000, message = "售后服务长度必须介于 0 和 2000 之间")
    public String getAfterService() {
        return afterService;
    }

    public void setAfterService(String afterService) {
        this.afterService = afterService;
    }

    public String getImgSrc() {
        return imgSrc;
    }

    public void setImgSrc(String imgSrc) {
        this.imgSrc = imgSrc;
    }

    @Length(min = 0, max = 11, message = "乐币长度必须介于 0 和 11 之间")
    public String getIntegral() {
        return integral;
    }

    public void setIntegral(String integral) {
        this.integral = integral;
    }

    public String getDescript() {
        return descript;
    }

    public void setDescript(String descript) {
        this.descript = descript;
    }

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    public Date getUpshelfTime() {
        return upshelfTime;
    }

    public void setUpshelfTime(Date upshelfTime) {
        this.upshelfTime = upshelfTime;
    }

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    public Date getDownshelfTime() {
        return downshelfTime;
    }

    public void setDownshelfTime(Date downshelfTime) {
        this.downshelfTime = downshelfTime;
    }

    @Length(min = 0, max = 1, message = "是否新品长度必须介于 0 和 1 之间")
    public String getIsnew() {
        return isnew;
    }

    public void setIsnew(String isnew) {
        this.isnew = isnew;
    }

    @Length(min = 0, max = 200, message = "关键字长度必须介于 0 和 200 之间")
    public String getKeywords() {
        return keywords;
    }

    public void setKeywords(String keywords) {
        this.keywords = keywords;
    }

    public HkUserShop getShop() {
        return shop;
    }

    public void setShop(HkUserShop shop) {
        this.shop = shop;
    }


    public User getUser() {
        return user;
    }

    public void setUser(User user) {
        this.user = user;
    }
}